package presentacion;
//Ventana Principal
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JDesktopPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UIManager.LookAndFeelInfo;

import static biblioteca.FuncionesDeVentanas.*;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.text.ParseException;

public class VentanaPrincipal extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	//private JDesktopPane desktopPane;
	public static JDesktopPane desktopPane;
	/**
	 * Launch the application.
	 */
	public static void cambiarANimbus(Component componente)
	{
		LookAndFeelInfo[]apariencias = UIManager.getInstalledLookAndFeels();
		
		for (LookAndFeelInfo apariencia:apariencias) 
		{
			if (apariencia.getName().equals("Nimbus"))
			{
				try 
				{
					UIManager.setLookAndFeel(apariencia.getClassName());
					SwingUtilities.updateComponentTreeUI(componente);
					break;
				} 
				catch (Exception e) 
				{
					e.printStackTrace();
				}
			}
		}
	}
	
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try
				{
					VentanaPrincipal frame = new VentanaPrincipal();
					frame.setVisible(true);
										
					//TODO: para que la ventana principal inicie con el Login esta parte debe estar activa
					
					/*Login login = new Login();
					login.setVisible(true);
					login.setFocusable(true);*/
					
				} 
				catch (Exception e) 
				{
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public VentanaPrincipal() {
		setTitle("Sistema de Punto de Venta The Three Amigos");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 784, 640);		
		
		JMenuBar menuBar = new JMenuBar();
		setJMenuBar(menuBar);
		
		JMenu menuFacturacion = new JMenu("Facturacion");
		menuBar.add(menuFacturacion);
		
		JMenuItem menuItemsVentas = new JMenuItem("Ventas");
		menuItemsVentas.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Ventas factura = null;
				factura = new Ventas();
				desktopPane.add(factura);
				centrarVentanaInterna(factura);
				factura.setVisible(true);
			}
		});
		menuFacturacion.add(menuItemsVentas);
		
		JMenu menuClientes = new JMenu("Clientes");
		menuBar.add(menuClientes);
		
		JMenuItem menuItemsRegistrarCliente = new JMenuItem("Registrar Cliente");
		menuItemsRegistrarCliente.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) 
			{
				RegistroDeCliente jPanelCliente = null;
				try 
				{
					jPanelCliente = new RegistroDeCliente();
				} 
				catch (ParseException e) 
				{
					e.printStackTrace();
				}
				desktopPane.add(jPanelCliente);
				centrarVentanaInterna(jPanelCliente);
				jPanelCliente.setVisible(true);				
			}
		});
		menuClientes.add(menuItemsRegistrarCliente);
		
		JMenu menuCompras = new JMenu("Compras");
		menuBar.add(menuCompras);
		
		JMenuItem menuItemsResgistrarArticulo = new JMenuItem("Registrar Articulo");
		menuItemsResgistrarArticulo.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				try
				{
					RegistroDeArticulo agregarArticulo = new RegistroDeArticulo();
					desktopPane.add(agregarArticulo);
					centrarVentanaInterna(agregarArticulo);
					agregarArticulo.setVisible(true);
					
				}
				catch(ParseException e)
				{
					e.printStackTrace();
				}
				
				
			}
		});
		menuCompras.add(menuItemsResgistrarArticulo);
		
		JMenuItem menuItemsRegistrarCompra = new JMenuItem("Registrar Compra");
		menuItemsRegistrarCompra.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) 
			{
				RegistroDeCompra agregarCompra = null;
				agregarCompra = new RegistroDeCompra();
				desktopPane.add(agregarCompra);
				centrarVentanaInterna(agregarCompra);
				agregarCompra.setVisible(true);
			}
		});
		menuCompras.add(menuItemsRegistrarCompra);
		
		JMenuItem menuItemsResgistrarProveedor = new JMenuItem("Registrar Proveedor");
		menuItemsResgistrarProveedor.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) 
			{				
				RegistroDeProveedor jPanelProveedor = null;
				try 
				{
					jPanelProveedor = new RegistroDeProveedor();
				} 
				catch (ParseException e1) 
				{
					e1.printStackTrace();
				}
				desktopPane.add(jPanelProveedor);
				centrarVentanaInterna(jPanelProveedor);
				jPanelProveedor.setVisible(true);
			}
		});
		menuCompras.add(menuItemsResgistrarProveedor);
		
		JMenu menuInventario = new JMenu("Inventario");
		menuBar.add(menuInventario);
		
		JMenuItem menuItemsProductos = new JMenuItem("Productos");
		menuInventario.add(menuItemsProductos);
		
		JMenu menuConsultas = new JMenu("Consultas");
		menuBar.add(menuConsultas);
		
		JMenu menuReportes = new JMenu("Reportes");
		menuConsultas.add(menuReportes);
		
		JMenuItem menuItemsReporteVentas = new JMenuItem("Ventas");
		menuReportes.add(menuItemsReporteVentas);
		
		JMenu menuUsurios = new JMenu("Usuarios");
		menuBar.add(menuUsurios);
		
		JMenuItem menuItemsIniciarSesion = new JMenuItem("Iniciar Sesion");
		menuItemsIniciarSesion.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				
				/*Login login = new Login();
				login.setVisible(true);
				login.setFocusable(true);*/	
			}
		});
		menuUsurios.add(menuItemsIniciarSesion);
		
		JMenuItem menuItemsAgregarUsuario = new JMenuItem("Agregar Usuario");
		menuItemsAgregarUsuario.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0)
			{
			 
				  
				try
				{
					RegistroDeUsuario agregarUsuario;
					agregarUsuario = new RegistroDeUsuario();
					desktopPane.add(agregarUsuario);
					centrarVentanaInterna(agregarUsuario);
					agregarUsuario.setVisible(true);
					
				} 
				catch (ParseException e)
				{
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				  
			}
		});
		menuUsurios.add(menuItemsAgregarUsuario);
		
		JMenuItem menuItemsCerrarSesion = new JMenuItem("Cerrar Sesion");
		menuUsurios.add(menuItemsCerrarSesion);
		
		desktopPane = new JDesktopPane();
		getContentPane().add(desktopPane, BorderLayout.CENTER);
		
		centrarVentana(this);
		
		//Abre la ventana maximizada
		setExtendedState(JFrame.MAXIMIZED_BOTH);
		cambiarANimbus(this);
	}
}
